﻿namespace day06_1;

class Program
{
    static void Main(string[] args)
    {
        //type [ ] arrayName ;
        // int[] arr;
        // double[] arr1;
        // string[] arr3;

        //创建数组对象
        //new 
        // - type [ ] arrayName ;      // 数组声明
        // - arrayName = new type [size];  // 创建数组实例∂
        //size：数组里面的元素个数
        int[] arr1;
        arr1 = new int[5];

        //type [ ] arrayName = new type [size] ; 
        int[] arr2 = new int[6];

        //type [ ] arrayName = new type [size] { val1, val2, ……,valn };
        int[] arr3 = new int[3] { 1, 2, 3 };

        //type [ ] arrayName = new type [ ] { val1, val2, ……,valn };
        int[] arr4 = new int[] { 1, 2, 3, 4, 5 };


        //type [ ] arrayName = { val1, val2, ……,valn };
        int[] arr5 = {1,2,3,4,5,6 };   //被进行优化net7
        
        //net8集合表达式
        //type[] arrayName=[val1,val2]
        int[] arr6 = [1,2,3,4,5,6]; //被进行优化net8  新特性
       
        //使用数组  索引index  ----> 下标
        //从0开始   依次增加1
        //最大下标  数组的长度-1
        //数字名字[下标]
        // Console.WriteLine(arr6[1]);
        // arr6[1] = 20;
        // Console.WriteLine(arr6[1]);
        
        //数组数组里面所有的元素
        // Console.WriteLine(arr6[0]);
        // Console.WriteLine(arr6[1]);
        // Console.WriteLine(arr6[2]);
        // Console.WriteLine(arr6[3]);
        // Console.WriteLine(arr6[4]);
        // Console.WriteLine(arr6[5]);
        //
        // Console.WriteLine(arr6.Length);//获取数组的长度
        // //循环for
        // for (int i = 0; i < arr6.Length; i++)
        // {
        //     Console.WriteLine(arr6[i]);
        // }
        
        // int[] arr7=[1,2,3];
        // int[] arr8=[4,5,6];
        // //net8  展开运算符
        // //对数组进行展开
        // //js  ...
        // int[] arr9 = [..arr7, ..arr8];
        // for (int i = 0; i < arr9.Length; i++)
        // {
        //     Console.WriteLine(arr9[i]);
        //     
        // }
        // int[] arr9=new int[arr7.Length+arr8.Length];
        // for (int i = 0; i < arr7.Length; i++)
        // {
        //     arr9[i] = arr7[i];
        // }
        //
        // for (int i = 0; i < arr8.Length; i++)
        // {
        //     arr9[i] = arr7[i];
        // }
        //
        // string[] names = { "张三", "李四", "王五" };
        //
        // Console.WriteLine("所有人名：");
        // for (int i = 0; i < names.Length; i++)
        // {
        //     if (i>0)
        //     {
        //         Console.Write("|");
        //     }
        //     
        //     Console.Write(names[i]);
        // }

        //Console.WriteLine(names[names.Length-1]);

        //练习5：将一个字符串数的元素的顺序进行反转。
        //{“我”,“是”,”好人”} {“好人”,”是”,”我”}。
       // string[] names = { "我", "是", "好人" };
        //a  b  c  3个元素交换1次
        //a  b  c  d  4个元素交换2次
        //a  b  c  d  e  5个元素交换2次
        //a  b  c  d  e  f  6个元素交换3次   
        //0  1  2  3  4  5
        //第一次交换 i=0  0----5      i    a.length-1-0   a.length-1-i
        //第二次交换 i=1  1----4           a.length-1-1
        //第三次交换 i=2  2----3           a.length-1-2
        
        //要交换的 次数是  数组的长度/2
        //
        // for (int i = 0; i < names.Length/2; i++)
        // {
        //     (names[i], names[names.Length - 1 - i]) = (names[names.Length - 1 - i],  names[i]);
        // }
        //
        // for (int i = 0; i < names.Length; i++)
        // {
        //     Console.WriteLine(names[i]);
        // }
        
        //1.创建随机数对象.   new
   //      Random random = new Random();
   //      // 2.通过随机数对象创建随机数
   //      //这个随机数的范围是int能取值的范围
   //     int num = random.Next();
   //     Console.WriteLine(num);
   //     //如果在括号里下一个数字 那范围就是0----这个数字
   //    num= random.Next(10);
   //    Console.WriteLine(num);
   //    //1-15    (A,B)    [A-----B-A]
   //  num=  random.Next(1, 16);
   //  Console.WriteLine(num);
   //  
   //  // //net6之后 新的语法  
   //  //  Random random = new Random();
   //  //  public static Random Shared { get; } = (Random) new Random.ThreadSafeRandom();
   // num= Random.Shared.Next(10);
   // Console.WriteLine(num);
   
   // 9,8,7,6,5,4,3,2,1,0
   // 第一轮:8,7,6,5,4,3,2,1,0,9       9次       a.length-1-0       i=0    a.length-1-i
   // 第二轮:7,6,5,4,3,2,1,0,8,9				8次			 a.length-1-1				i=1
   // 第三轮:6,5,4,3,2,1,0,7,8,9				7次			 a.length-1-2				i=2
   // 第四轮:5,4,3,2,1,0,6,7,8,9
   // 第五轮:4,3,2,1,0,5,6,7,8,9
   // 第六轮:3,2,1,0,4,5,6,7,8,9
   // 第七轮:2,1,0,3,4,5,6,7,8,9
   // 第八轮:1,0,2,3,4,5,6,7,8,9
   // 第九轮:0,1,2,3,4,5,6,7,8,9
   
   // int[] a=[9,8,7,6,19,5,4,3,2,1,0];
   // for (int i = 0; i < a.Length-1; i++)//轮数
   // {
   //     //当前循环到的元素 和后面去比较  如果 我比你大  我们两就交换位置
   //     for (int j = 0; j < a.Length-1-i; j++)
   //     {
   //         if (a[j]>a[j+1])
   //         {
   //             (a[j],a[j+1])=(a[j+1],a[j]);
   //         }
   //         
   //     }
   // }
   //
   // for (int i = 0; i < a.Length; i++)
   // {
   //     Console.WriteLine(a[i]);
   // }
   
   //Array.Sort(要排序的数字);  正序排序
   int[] a = { 6,7,3,33,55,23,41};
    // Array.Sort(a);
    // for (int i = 0; i < a.Length; i++)
    // {
    //     Console.WriteLine(a[i]);
    //     
    // }
    Array.Reverse(a);//反转  没有排序
    for (int i = 0; i < a.Length; i++)
    {
        Console.WriteLine(a[i]);
        
    }
    
    }
}